          SUBROUTINE (PASSER)
** Version# 16.0001[1] - 10/28/2014 - 02:27pm - TSMITH - eclipse

*** Subroutine : RENTAL.PROD.LOC.MAINT
*-------------------------------------------------------------------------*
*** This routine is the routine which is used to edit a Rental Product
*-------------------------------------------------------------------------*
*** Parameters:
*** NONE
*-------------------------------------------------------------------------*
*** Globals:
*** PRD  - Product
*** PRDD - Prod Dynam
*-------------------------------------------------------------------------*
          CHECK.KEY 'RENTAL.MAINT',ENTRY.OK,LEVEL
          IF NOT(ENTRY.OK) THEN RETURN

          READ VSTATS FROM CTRLFILE,'RENTAL.PROD.STATUS' ELSE VSTATS = ''

          SCREEN

*          UT.SEC3 23,AUTH.OK,,YES
          AUTH.OK = YES
          IF AUTH.OK # YES THEN GOTO FINISH
          VSCROLL.DEFINE 1,1,4,46,7,'RENTAL.PROD.LOC.MAINT'
          VSCROLL.SET 1

          PN        = PASSER<1>
          BR        = PASSER<2>
          VIEW.ONLY = PASSER<3>

          IF LEVEL < 2 THEN VIEW.ONLY = YES

*-------------------------------------------------------------------------*
START:    CLEAR.SCREEN
          MENU.CLEAR

*-------------------------------------------------------------------------*
PRE.PN:   IF PASSER<1> = '' THEN
IN.PN:       INP PN,9,1,30,'TPRODUCT;X;1;1',V_'S:VERF.PRD.ID'
             IF QUIT THEN GOTO FINISH
             IF NOT(PN) THEN PRINT BELL:; GOTO IN.PN
             ON MOVE+1 GOTO IN.PN,IN.PN,IN.PN,IN.PN
          END

          PRINT @(9,1):OCONV(PN,'TPRODUCT;X;1;1') "L#30"
          PRINT @(9,2):BR                         "L#4"

          IF PASSER<2> = '' THEN
IN.BR:       INP.BR 9,2,4,,,BR,NO,NO
             IF QUIT THEN GOTO FINISH

             ON MOVE+1 GOTO IN.BR,IN.BR,PRE.PN,IN.BR
          END

          GOSUB SEL.IDS
          GOSUB DISPLAY
          GOSUB HKEYS

          LINE = 1; COL = 1; F12 = NO; QUIT = NO; LASTKEY = ''; MOVE = ''
*-------------------------------------------------------------------------*
MOVENEXT: *
          IF QUIT THEN GOSUB FILEIT
          DNOK = (LINE < LN.CT)

          PARSEMOVE COL,LINE,3,LN.CT,7,DNOK,NO

          GOTO IN.VIEW
*-------------------------------------------------------------------------*
IN.VIEW:  INPV ,0,LINE,0

          GOTO MOVENEXT
*-------------------------------------------------------------------------*
SUBS:     ON OPTION GOTO LOG.VIEW,LOG.CMT,DETAIL,VIEW,NEW.RENT
          RETURN
*-------------------------------------------------------------------------*
LOG.VIEW: RPN = LIST<1,LINE>
          MAINT.LOG.VIEW 'PRODUCT.RENTAL':AM:RPN:AM:RPN
          RETURN
*-------------------------------------------------------------------------*
LOG.CMT:  *
          IF VIEW.ONLY THEN PRINT BELL:; RETURN
          RENTAL.PROD.CMT LIST<1,LINE>

          RETURN
*-------------------------------------------------------------------------*
DETAIL:   *
          RENTAL.PROD.MAINT LIST<1,LINE>:AM:VIEW.ONLY
          QUIT = NO

          SV.LINE = LINE

          GOSUB SEL.IDS
          GOSUB DISPLAY

          LINE = SV.LINE
          MOVE = ''; LASTKEY = ''; QUIT = NO

          RETURN TO MOVENEXT
*-------------------------------------------------------------------------*
VIEW:     *
          LOC  = LIST<3,LINE>
          RLOC = FIELD(LOC,'.',1)

          IF RLOC[1,1] = 'R' AND LEN(RLOC) = 8 AND NUM(RLOC[2,7]) THEN
             RENTAL.OE.COMMON RLOC,1,YES
          END ELSE PRINT BELL:;


          RETURN
*-------------------------------------------------------------------------*
NEW.RENT: *
          IF VIEW.ONLY THEN PRINT BELL:; RETURN

          FPN = PN
          TPN = ''
          TBR = BR
          LOC = ''
          RPN = ''

          *** Get new info
          RENTAL.PROD.MAINT.NEW RPN,FPN,TPN,TBR,LOC
          IF NOT(RPN) THEN PRINT BELL:; RETURN

          *** Convert existing inv into a rental prod
          RENTAL.PROD.CREATE RPN,FPN,TBR,1,LOC,RERR
          IF RERR THEN GOTO NEW.ERR

          IF TPN THEN
             *** If a general product was specified,
             *** convert the current to the general.
             RENTAL.PROD.CONV RPN,FPN,TPN,TBR,RERR
             IF RERR THEN GOTO NEW.ERR

             READ NRNT FROM RENTFILE,RPN THEN
                ORNT    = NRNT
                NRNT<1> = TPN
                TREASON = REASON$
                REASON$ = '**'
                UPDATE.RECORD 'PRODUCT.RENTAL',RENTFILE,RPN,ORNT,NRNT,RERR
                RELEASE RENTFILE,RPN
                REASON$ = TREASON
                IF RERR THEN GOTO NEW.ERR
             END
          END

          *** Redisplay data w/ new prod
NEW.DISP: SV.LINE = LINE

          GOSUB SEL.IDS
          GOSUB DISPLAY

          LINE = SV.LINE
          MOVE = ''; LASTKEY = ''; QUIT = NO

          RETURN TO MOVENEXT
*-------------------------------------------------------------------------*
NEW.ERR:  INP.PROMPT ,RERR,,0
          GOTO NEW.DISP
*-------------------------------------------------------------------------*
DISPLAY:  *
          IF VIEW.ONLY THEN PRINT @(34,0):BLINK$:'*View Only*':NORM$

          PRINT @(9,1):OCONV(PN,'TPRODUCT;X;1;1') "L#30"
          PRINT @(9,2):BR                         "L#4"

          FOR LINE = 1 TO LN.CT
             GOSUB DISP.LN
          NEXT LINE

          RETURN
*-------------------------------------------------------------------------*
DISP.LN:  *
          LOC  = LIST<3,LINE>
          RLOC = FIELD(LOC,'.',1)

          IF RLOC[1,1] = 'R' AND LEN(RLOC) = 8 AND NUM(RLOC[2,7]) THEN
             LOC = 'Order : ':RLOC
          END

          VPRINT  0,LINE,LIST<1,LINE> "R#14"
          VPRINT 15,LINE,LIST<2,LINE> "L#10"
          VPRINT 30,LINE,LOC          "L#16"

          RETURN
*-------------------------------------------------------------------------*
HKEYS:    *
          MENU.LOAD  2,12, 3,3,'G'
          MENU.LOAD  8,12, 7,1,'C'
          MENU.LOAD 18,12, 6,1,'D'
          MENU.LOAD 27,12, 4,1,'V'
          MENU.LOAD 34,12,10,1,'N'

          RETURN
*-------------------------------------------------------------------------*
SEL.IDS:  *
          LIST = ''

          GET.ALL.PRD BR,PN
          PRDD.BR.GET BR,PN

          RCT =  DCOUNT(PRDD.BR(25),VM)
          IF RCT < 1 THEN
             RERR = 'This Branch Contains no Rental Products.'
             RETURN TO ID.ERR
          END
          L.CNT = 0
          FOR R = 1 TO RCT
             TMP.STAT  = PRDD.BR(26)<1,R>
             IF NOT(NUM(TMP.STAT)) THEN TMP.STAT = 1
             ORD.CNT = DCOUNT(PRDD.BR(27)<1,R>,SVM)
             FOR ORD = 1 TO ORD.CNT
                L.CNT +=1
                LIST<1,L.CNT> = PRDD.BR(25)<1,R>               ;* ID
                LIST<2,L.CNT> = VSTATS<1,TMP.STAT>             ;* Status
                LIST<3,L.CNT> = PRDD.BR(27)<1,R,ORD>           ;* Location
                LIST<4,L.CNT> = PRDD.BR(28)<1,R>               ;* Commit
             NEXT ORD
          NEXT R

          LN.CT = DCOUNT(LIST<1>,VM)

          RETURN
*-------------------------------------------------------------------------*
ID.ERR:   INP.PROMPT ,RERR,,0
          IF PASSER<1> AND PASSER<2> THEN GOTO FINISH
          GOTO START
*-------------------------------------------------------------------------*
FILEIT:   *
          IF PASSER<1> AND PASSER<2> THEN RETURN TO FINISH
          RETURN TO START
*-------------------------------------------------------------------------*
FILE.ERR: INP.PROMPT ,RERR,,0
          RETURN
*-------------------------------------------------------------------------*
FINISH:   WINDOW.CLOSE
          RETURN
*-------------------------------------------------------------------------*
!TSMITH~10/28/14~14:27
